package day02.basic2;

/**
 * @author 李某
 * * @date 2021/10/28
 * *物有本末，事有终始。知其先后者，则近道矣！
 * *荷花开满池塘的前一天还是半塘荷花半塘云。
 */
public class Demo {
    // 1.创建程序的入口函数main
    public static void main(String[] args) {
        // 规则1 ：整数字面值类型为 int
        int x = 99999;
        // byte y = 300; // 错，300是int类型，byte存不下
        // int z = 999999999; // 错 ，虽然是int类型 ，但是超出范围
        long h = 999999990000l; // 如果要定义long类型需要加后缀L

        // 规则2：浮点型的字面值为double
        double d = 3.14;
        // float f = 3.14 // 错，3.14 认为自己是double类型的
        float f = 3.14f;  // 如果要定义float类型需要加后缀f
        double d2 = 3D; //如果要定义小数是整形，最好加D方便阅读

        // 规则3：byte1  short2  char2
        // 三种比int小的类型可以在使用范围内直接赋值

        byte n = 1 ;
        char m = 97 ;

        // byte q = 128 ; // 错超出了int的取值范围

        // 规则4 ： 字面值后缀 L - long  F - float D- double
        // 规则5 ： 字面值前缀 0b - 二进制  0 - 八进制  0x - 十六进制

        // 10 进制，底数为10 ：10^2  10^1  10^0  = 100 + 0 + 0 = 100
        System.out.println(100); // 默认10进制，打印100

        // 2 进制，底数为2：2^2  2^1  2^0 = 4+0+0 = 4
        System.out.println(0b100); // 2进制。打印4

        // 8 进制,底数为8；8^2 ,8^1 8^0 = 64 + 0 + 0 = 64
        System.out.println(0100); // 8 进制，打印64

        // 16进制，底数为16 ： 16^2 16^1 16^0 = 256 + 0 + 0 = 256
        System.out.println(0x100); // 16进制，打印256


    }
}
